class Settings:
    '''存储所有设置类'''

    def __init__(self) -> None:
        # 屏幕设置
        self.screen_width = 800 # 屏幕宽度
        self.screen_height = 600 # 屏幕高度
        self.bg_color = (230, 230, 230) # 屏幕背景色

        # 飞船设置
        self.ship_limit = 3 # 有3条命

        # 子弹设置
        self.bullet_width = 3
        self.bullet_height = 15
        self.bullet_color = (60, 60, 60)
        self.bullet_allowed = 3 # 限制最大子弹数

        # 外星人设置
        self.fleet_drop_speed = 10 # 下降速度

        # 加快速度的速度
        self.speedup_scale = 1.1
        # 外星人分数的提高速度
        self.score_scale = 1.5


        self.initialize_dynamic_settings()
    
    def initialize_dynamic_settings(self):
        """初始化随游戏进行而变化的设置（可动态变化的设置）"""
        self.ship_speed = 1.5 # 移动速度（像素）
        self.bullet_speed = 3.0 # 初始子弹移动速度
        self.alien_speed = 1.0 # 左右移动速度
        
        # self.fleet_direction为1是右移，-1是左移
        self.fleet_direction = 1

        # 计分
        self.alien_points = 50 # 击落一个外星人得分数，因为速度增加得分也会增加，所以时动态变化的
    
    def increase_speed(self):
        """提高速度设置和外星人分数"""
        self.ship_speed *= self.speedup_scale
        self.bullet_speed *= self.speedup_scale
        self.alien_speed *= self.speedup_scale

        self.alien_points += int(self.alien_points * self.score_scale) # 按score_scale的幅度提高得分
        # print(self.alien_points) # 测试